package java_test.udpdemo;//package udpdemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
/*
 *   实现UDP发送，发送键盘输入的数据
 */
/*
 *   实现UDP协议的发送端：
 *       实现封装数据的类：java.net.DatagramPacket   将你的数据包装
 *       实现数据传输的类：java.net.DatagramSocket   将数据包发出去
 *
 *   实现步骤：
 *       1. 创建DatagramPacket对象，封装数据，接受数据的地址和端口
 *       2. 创建DatagramSocket对象
 *       3. 调用DatagramSocket类方法send,发送数据包
 *       4. 关闭资源
 *
 *   DatagramPacket构造方法： Datagrampacket(byte[] buf, int length,InetAddress address, int port)
 *   DatagramSocket构造方法：DatagramSocket()空参               方法：send(DatagramPacket d)
 */

public class UDPSend {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        // 创建InetAddress对象，封装要发送的IP地址
        InetAddress inet = InetAddress.getByName("10.6.211.169");
        //System.out.println(inet);                //  /192.168.3.32
        // 创建DatagramSocket对象，数据包的发送和接收对象
        DatagramSocket ds = new DatagramSocket();
        while (true) {
            String message = sc.nextLine();
            // 创建数据包对象，封装要发送的数据，接收端IP 和端口号
            byte[] data = message.getBytes();
            DatagramPacket dp = new DatagramPacket(data, data.length, inet, 6000);
            // 调用ds方法 send，发送数据包
            ds.send(dp);
        }

        // 关闭资源
        //ds.close();
    }

}